﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

using Padelcenter.Common;
using Padelcenter.DataAccess;

namespace Padelcenter.BusinessLogic.Get
{
    public class GetTipoPropiedad : IBusinessLogic
    {
        public GetTipoPropiedad() { }

        public void Invoke()
        {
            TipoPropiedad_Select oTipoPropiedadSelect = new TipoPropiedad_Select();
            oTipoPropiedadSelect.TipoPropiedad = this.TipoPropiedad;

            this.Resultset = oTipoPropiedadSelect.Get();
        }

        public List<TipoPropiedad> TipoPropiedadList()
        {
            this.Invoke();

            List<TipoPropiedad> listaTipoPropiedad = new List<TipoPropiedad>();

            DataTable dTable = new DataTable();
            dTable = this.Resultset.Tables[0];

            if (dTable.Rows.Count > 0)
            {
                TipoPropiedad oTipoPropiedad;
                
                foreach (DataRow r in dTable.Rows)
                {
                    oTipoPropiedad = new TipoPropiedad();
                    oTipoPropiedad.IdTipoPropiedad = Convert.ToInt32(r["idTipoPropiedad"]);
                    oTipoPropiedad.Descripcion = r["Descripcion"].ToString();
                    oTipoPropiedad.ValidaEnCompra = Convert.ToBoolean(r["ValidaEnCompra"]);
                    oTipoPropiedad.Activo = Convert.ToBoolean(r["Activo"]);

                    listaTipoPropiedad.Add(oTipoPropiedad);
                }
            }

            return listaTipoPropiedad;
        }

        private DataSet _resultset;
        private TipoPropiedad _tipoPropiedad;

        public TipoPropiedad TipoPropiedad
        {
            get { return _tipoPropiedad; }
            set { _tipoPropiedad = value; }
        }

        public DataSet Resultset
        {
            get { return _resultset; }
            set { _resultset = value; }
        }
    }

    public class GetTipoPropiedadDescripcion : IBusinessLogic
    {
        public GetTipoPropiedadDescripcion() { }

        public void Invoke()
        {
            TipoPropiedadDescripcion_Select oTipoPropiedadDescripcionSelect = new TipoPropiedadDescripcion_Select();
            oTipoPropiedadDescripcionSelect.TipoPropiedadDescripcion = this.TipoPropiedadDescripcion;

            this.Resultset = oTipoPropiedadDescripcionSelect.Get();
        }

        public List<TipoPropiedadDescripcion> TipoPropiedadDescripcionList()
        {
            this.Invoke();

            List<TipoPropiedadDescripcion> listaTipoPropiedadDescripcion = new List<TipoPropiedadDescripcion>();

            DataTable dTable = new DataTable();
            dTable = this.Resultset.Tables[0];

            if (dTable.Rows.Count > 0)
            {
                TipoPropiedadDescripcion oTipoPropiedadDescripcion;

                foreach (DataRow r in dTable.Rows)
                {
                    oTipoPropiedadDescripcion = new TipoPropiedadDescripcion();
                    oTipoPropiedadDescripcion.IdTipoPropiedad = Convert.ToInt32(r["idTipoPropiedad"]);
                    oTipoPropiedadDescripcion.Descripcion = r["Descripcion"].ToString();
                    oTipoPropiedadDescripcion.TextoWebPreSel = r["TextoWebPreSel"].ToString();
                    oTipoPropiedadDescripcion.InitialTextSel = r["InitialSelText"].ToString();

                    Idioma oIdioma = new Idioma();
                    oIdioma.IdIdioma = Convert.ToInt32(r["idIdioma"]);

                    GetIdioma oGetIdioma = new GetIdioma();
                    oGetIdioma.Idioma = oIdioma;

                    oTipoPropiedadDescripcion.Idioma = oGetIdioma.IdiomaList()[0];

                    listaTipoPropiedadDescripcion.Add(oTipoPropiedadDescripcion);
                }
            }

            return listaTipoPropiedadDescripcion;
        }

        private DataSet _resultset;
        private TipoPropiedadDescripcion _tipoPropiedadDescripcion;

        public TipoPropiedadDescripcion TipoPropiedadDescripcion
        {
            get { return _tipoPropiedadDescripcion; }
            set { _tipoPropiedadDescripcion = value; }
        }
        
        public DataSet Resultset
        {
            get { return _resultset; }
            set { _resultset = value; }
        }
    }
}
